module sph_particle

    use sph_kinds, only: rk

    !> 纯粒子域，用于高速存储与计算
    type particle_t
        real(rk) :: hsml  !! 光滑长度
        real(rk), allocatable :: loc(:, :)  !! 位置
        real(rk), allocatable :: vel(:, :)  !! 速度
        real(rk), allocatable :: acc(:, :)  !! 加速度
        real(rk), allocatable :: mass(:)  !! 质量
        real(rk), allocatable :: rho(:)  !! 密度
        real(rk), allocatable :: drho(:)  !! 密度变化率
        real(rk), allocatable :: u(:)  !! 内能密度
        real(rk), allocatable :: du(:)  !! 内能密度变化率
        real(rk), allocatable :: p(:)  !! 压强
        real(rk), allocatable :: c(:)  !! 声速
        integer, allocatable :: itype(:)  !! 粒子类型
    end type particle_t

end module sph_particle
